package com.xjy.common.core.domain.entity;


import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.*;

/**
 * 预算科目信息对象 sys_budget
 *
 * @author xjy
 * @date 2022-02-07
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("sys_budget")
public class SysBudget implements Serializable {

	private static final long serialVersionUID=1L;


	/** 科目id */
	@TableId(value = "id")
	private Long id;

	/** 项目id */
	private Long projId;

	/** 项目id */
	private String projName;
	/** 父级科目编号 */
	private Long parentNo;

	/** 科目编号 */
	private String subjectNo;

	/** 科目名称 */
	private String subjectName;

	/** 科目类别编号 */
	private String subType;

//	/** 0：收入科目，1：支出科目 */
//	private String subTypeName;

	/** 科目层级 */
	private Long subNum;

	/** 科目序号 */
	private Long subNo;

	/** 修改时间 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private Date updateTime;

	/** 删除标志位（0代表存在 2代表删除） */
	@TableLogic
	private String delFlag;

	/** 祖级列表 */
	private String ancestors;

	/** 显示顺序 */
	private Long orderNum;

	/** 修改者 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private String updateBy;

	/** 创建者 */
	@TableField(fill = FieldFill.INSERT)
	private String createBy;

	/** 创建时间 */
	@TableField(fill = FieldFill.INSERT)
	private Date createTime;

	@TableField(exist = false)
	private List<SysBudget> children = new ArrayList<SysBudget>();
	/** 预算科目状态 */
	private String status;

	/**
	 * 请求参数
	 */
	@TableField(exist = false)
	private Map<String, Object> params = new HashMap<>();

	private Boolean auditStatus;


}

